Table of Contents
绿联Nas的系统真是一言难尽,所以最近几天我都在寻找一种安装群晖的教程,也知晓群晖其实也没那么容易安装,主要是安装群晖后,有很大的概率导致机器指示灯,风扇,甚至M.2固态失效,也正因为此,虽然已经整理好了安装的教程,但迟迟没有动手,此次在网上搜寻教程时无意中发现了一个超酷超帅的Docker镜像,安装后真的会惊叹为何会有如此棒的东西,它就是
kroese/virtual-dsm ,一个利用Docker管理群晖虚拟机的镜像,对于没有虚拟机功能的绿联Nas来说,无疑是非常棒地既可以体验本地群晖系统,又不用刷机改引导,格式化硬盘的方法
安装教程
安装流程和之前的已有的一篇文章相差不大 绿联DX4600安装docker黑群晖
当然这里也会写上部分我自己特别折腾的记录,大家可以放心食用
下载镜像
打开绿联Docker,输入 kroese/virtual-dsm
下载镜像
使用ssh登录到后台
其中登录教程在我之前的一篇文章中有介绍 绿联DX4600 Pro禁用迅雷和中国移动云盘进程
这里就再简单介绍一下:
-
开启远程协助,记住验证码
-
重启机器(注意先保存进行中的任务)
-
使用 ssh 客户端登录,端口 922,密码
L#W$%W1uGa
加上验证码,用户 root
使用Docker命令行安装
首先需要验证挂载的目录,我这里是找了两个已经创建并挂载了本地存储的镜像,使用
docker inspect --format "{{json .HostConfig.Mounts}}" 镜像名
查看挂载的实际目录,可以看出Docker实际挂载的目录由
/mnt/media_rw/ + 硬盘UUID + /.ugreen_nas/ + 用户ID + 硬盘目录
这几部分构成,那么就好办了,首先创建一个DSM的目录,用于存放群晖虚拟机文件,我这里选择固态硬盘,避免使用机械硬盘导致硬盘无法休眠,如果选择其它硬盘,需要先创建一个没什么用的Docker挂载目录,然后使用 inspect
找到实际的路径
建立好目录后使用命令行安装镜像
其中的几个参数
-
DISK_SIZE=100G: 分配给群晖虚拟机100G的磁盘空间,这部分空间会作为存储1使用
-
ALLOCATE=N: 是否预分配100G的大小(Y),还是按照实际大小展示在绿联Nas上(N)(这个参数貌似没生效)
-
CPU_CORES=2: 分配给虚拟机的核数,我的是 n6005,四核,所以分了两核给群晖
-
RAM_SIZE=8192M: 分配给虚拟机的内存大小
-
--network 实际的网络: 也可以不写,使用默认的
Docker bridge
创建完成后使用 docker logs -f DSM
查看日志,直到日志显示
在此期间,也可以打开浏览器,使用绿联Nas IP+端口5000 进行访问
然后就是正常的群晖初始化,至此,想要体验本地群晖系统的就可以行动了
等等,后面还有。。。
折腾教程
群晖本地IP(macvlan)
按照GitHub上的教程,我原本想要配置一个和局域网内其它设备相同网段的IP给群晖虚拟机,所以我创建了一个基于 macvlan
的网络
docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.1 --ip-range=192.168.31.66/32 -o parent=eth0 dsmnet
然后使用 --network dsmnet
重新创建Docker,结果怎么着,报错了
docker: Error response from daemon: failed to create the macvlan port: operation not supported.
第一眼我还觉得这是由于docker打包脚本里的 EXPOSE
的锅,甚至去搜索能否禁用该操作,结果也是显而易见的,什么都没找到。后来仔细看了一下报错信息:operation not supported
好吧,确认一下 macvlan
相关的模块是否被加载
lsmod | grep macvlan
果然,绿联Nas默认是没有macvlan模块的,所以想用绿联Nas部署一个openwrt旁路由的可以先歇了。那么,我能否自己安装macvlan模块呢?
对不起,打扰了。不对,内核版本不符,那么我去下载一个和内核版本相符的文件,使用 uname -r 看一下绿联用的版本
5.10.120
我直接去官方库里找,还好找到了,同样使用的 5.10.120-1
wget https://downloads.openwrt.org/releases/22.03.0-rc4/targets/x86/64/packages/kmod-macvlan_5.10.120-1_x86_64.ipk
继续安装,结果还是一样 因为我对openwrt不太熟悉,实在进行不下去了,只好放弃。不过也能看出绿联还是编译了一些属于自己的东西的,没有直接使用默认的openwrt内核,不过现在大概只能等绿联自己升级固件来默认支持macvlan了,或者有没有大佬能够解答一下这个问题
webdav挂载
因为docker安装的群晖无法直接使用插入的硬盘,甚至不能映射某个目录到群晖虚拟机,所以如果想用群晖来操作绿联Nas上面的文件,只能通过网络挂载
绿联本身支持的网络挂载有限,不支持NFS
,但是还好可以支持webdav
和ftp
,那么可以去群晖web管理界面,打开 file station -> 工具 -> 远程连接 -> 连接设置 -> ftp/webdav 进行配置
你以为我要说的就这,这不是显而易见,浅显易懂,入口即化的吗?实际上,除了ftp
可以正常挂载外,webdav
却是死活挂载不了,总是提示连接被服务器拒绝,搞得我还以为绿联是不是连一个基础的webdav都没做好,但我用我的mac连接又可以正常挂载,差点把我整emo
我可以确认我的配置是对的,那到底是哪里出了问题,打开群晖的ssh,也确认了是可以正常和宿主机通信的
最后搞得实在没办法了,抓包吧,还好群晖默认已经安装了tcpdump,只需要生成pcap文件就行
tcpdump -i eth0 host 192.168.31.65 -w ugreen/webdav.pcap
终端运行抓包命令,另一边在群晖界面进行添加webdav的操作,等待再次提示连接被服务器拒绝后,再等待5s,暂停抓包,然后把 webdav.pcap 下载到本地,使用 wireshark 查看
乍一看没什么问题,都是正常的DNS查询和TCP握手,可仔细一看,怎么会多了一个斜杆,而且服务端返回了401错误
原来群晖挂载webdav的路径一定不能使用斜杆开头,一定不能使用斜杆开头,一定不能使用斜杆开头,重要的事情说三遍,需要把 /dav/share/
改成 dav/share/
(注意,绿联webdav路径后必须有一个斜杆)
至此,webdav挂载也ok了
其它
-
在使用 非macvlan 网络创建的群晖系统里内置的 IP 20.20.20.21 以及 网关20.20.20.1 是不能修改的,修改后可能会导致无法从浏览器访问群晖
-
可以修改DNS服务为局域网网关或者自建DNS的IP,修改后记得重启群晖系统
-
功耗,启动
virtual-dsm
前我的机器功耗大概是18W,启动后在26W左右,一段时间后又会变成19W,这应该和系统内运行的任务有关